<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
require_once 'departamento.php';
require_once 'conexion.php';

class PersistenciaDepartamento {

    private static $instance = false;

    public static function getInstance() {
        if (!self::$instance instanceof self) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    public function crearDepartamento($datos) {
        try {
            $db = Conexion::getInstance();
            $aux = '0';
            if ($this->traeraDepartamento($datos) == null) {
                $sentencia = "INSERT INTO departamento (numero,propietario) VALUES('" . $datos[0] . "','" . $datos[1] . "')";
                $db->consulta($sentencia);
                $aux = '1';
            }
            return $aux;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function armarDepartamento($datos) {
        try {
            require_once 'persistenciaCochera.php';
            $cochera = PersistenciaCochera::getInstance();
            $departamentos = array();
            if (!is_null($datos)) {
                foreach ($datos as $departamento) {
                    $depto = new Departamento(null);
                    $depto->iddepartamento = $departamento[0];
                    $depto->propietario = $departamento[1];
                    $depto->cocheras = $cochera->traerCochera($departamento[0]);
                    array_push($departamentos, $depto);
                }
            }
            return $departamentos;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traeraDepartamento($datos) {
        try {
            $db = Conexion::getInstance();
            if (is_array($datos)) {
                $sentencia = "select * from departamento where numero='" . $datos[0] . "'";
            } else {
                $sentencia = "select * from departamento";
            }
            
            return $this->armarDepartamento($db->consulta($sentencia));
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function actualizarDepartamento($datos) {
        try {
            $db = Conexion::getInstance();
            $aux = '0';
            if (count($this->traeraDepartamento($datos)) != '0') {
                $sentencia = "UPDATE departamento SET propietario = '" . $datos[1] . "' WHERE numero = '" . $datos[0] . "'";
                $db->consulta($sentencia);
                $aux = '1';
            }
            return $aux;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString
            ();
        }
    }

    public function eliminarDepartamento($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from departamento where numero = '" . $datos . "'";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

}

?>
